SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

CREATE PROCEDURE [dbo].[pje_porGestion] @idinscripcion integer,@pje float output,@resultado as integer output   AS
set nocount on

declare @topeGestion as  integer
declare  @grupoIncumbencia as integer
declare  @grupoIncumbencia2 as integer
declare  @idAgente as int,@CargoGenerico as int,@AsignaturaGenerica as int, @idTipoConvocatoria as int ,@fechaLimite as datetime
declare @sum as float
DECLARE @nivel_insc AS INT
declare @ciclo as int
DECLARE @Error INT

BEGIN TRANSACTION
             SET @ERROR=0

select @topeGestion =(select valor from tb_topetiposantecedentes where rubro=12 and TipoAntecedente =99 )-- leo el  tope por gestion
set @topeGestion = isnull(@topeGestion,1)

select  @idAgente=i.Agente,@cargoGenerico = i.CargoGenerico,@AsignaturaGenerica=i.AsignaturaGenerica,@idtipoConvocatoria=Conv.TipoConvocatoria,@FechaLimite=Conv.FechaLimite,@nivel_insc = i.nivel,@ciclo=ciclo
	from 
	tb_inscripcionesConvocatorias i 
		join tb_Convocatorias conv on i.Convocatoria=conv.idConvocatoria 
	where i.idInscripcionConvocatoria=@idInscripcion
--Corrección para 3er ciclo
if @nivel_insc = 3 and @ciclo = 2 set  @nivel_insc=4

select @grupoIncumbencia=case
	when @nivel_insc = 2 then 572
	when @nivel_insc = 3 then 573
	when @nivel_insc = 4 then 571
end

select @grupoIncumbencia2=case
	when @nivel_insc = 2 then 570
	when @nivel_insc = 3 then 570
	when @nivel_insc = 4 then 571
end


print  @grupoIncumbencia

--if  @idTipoConvocatoria  in (1,5)  --    TipoConvocatoria = 1 ingreso,interinatos y suplencias
--begin

	declare c cursor FORWARD_ONLY FOR
	select  	isnull (0.1 * count(distinct valor),0) puntaje from 
		tb_antecedentes a 
--		join tb_tiposAntecedentes t on a.tipo=t.idtipoantecedente 
		join tb_gruposDeIncumbencias G on G.idGrupoIncumbencia=a.GrupoIncumbencias
--		join tb_reluniongsgu R on r.idgrupounion = G.idGrupoIncumbencia
		join tb_incumbencias h on G.idGrupoincumbencia=h.grupoIncumbencia
    	         where a.rubro=12 and agente=@idagente and  h.CargoGenerico=@Cargogenerico
		 and h.AsignaturaGenerica=@AsignaturaGenerica and a.FechaPresentacion <= @FechaLimite -- (h.grupoIncumbencia= @grupoIncumbencia  or h.grupoIncumbencia= @grupoIncumbencia2  or h.grupoIncumbencia=99 )--h.CargoGenerico=@Cargogenerico and h.AsignaturaGenerica=@AsignaturaGenerica--sumo todos los artículos que tiene el agente
		SET @Error = @@ERROR 
		IF @Error <> 0 GOTO Salir
	open c
	fetch next from c into @sum
	set @pje=0

	while @@FETCH_STATUS = 0
	begin
		set @pje=@pje+@sum
		fetch next from c into @sum
	end

	close c
	deallocate c

	if  @pje > @topeGestion set @pje = @topeGestion 
--end

print @pje
Salir:
IF @Error <> 0 
	ROLLBACK TRANSACTION
ELSE 
	COMMIT TRANSACTION
GO
GRANT EXECUTE ON  [dbo].[pje_porGestion] TO [Juntas]
GO
